#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>  // 添加这个头文件以解决迭代器问题

using namespace std;

// 成员A：输入合法性判断
bool isValidBinaryString(const string& input) {
    // 检查长度是否为8
    if (input.length() != 8) {
        return false;
    }
    
    // 检查每个字符是否为'0'或'1'
    for (char c : input) {
        if (c != '0' && c != '1') {
            return false;
        }
    }
    
    return true;
}

// 成员B：1的位计数函数
int countOnes(const string& binaryStr) {
    return count(binaryStr.begin(), binaryStr.end(), '1');
}

// 成员C：输出与验证格式
void printParityBits(const string& binaryStr) {
    int ones = countOnes(binaryStr);
    
    // 计算奇校验位
    int oddParity = (ones % 2 == 0) ? 1 : 0;
    
    // 计算偶校验位
    int evenParity = (ones % 2 == 0) ? 0 : 1;
    
    // 输出结果
    cout << "Input: " << binaryStr << endl;
    cout << "Odd Parity Bit: " << oddParity << endl;
    cout << "Even Parity Bit: " << evenParity << endl;
}

int main() {
    string input;
    
    cout << "Enter an 8-bit binary string: ";
    cin >> input;
    
    // 成员A的代码：验证输入
    if (!isValidBinaryString(input)) {
        cout << "Invalid input! Please enter exactly 8 binary digits (0 or 1)." << endl;
        return 1;
    }
    
    // 成员C的代码：输出结果
    printParityBits(input);
    
    return 0;
}